// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/iot/model/ProductDto'
import API from './API'

const WORD = 'IOT产品'

const TAB = [
  ['base', '产品信息'],
  ['instance', '实例属性'],
  ['property', '物模型属性'],
  ['function', '物模型功能'],
  ['event', '物模型事件'],
  ['device', '关联设备'],
]

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', WORD], // 菜单
    ...API,
  },

  /**
   * 映射
   */
  MAP: {
    WORD, // 词语

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'id',

    // 弹窗属性
    MODEL_PROPS: {
      title: `${WORD}详情`,
      large: true,
      bgClose: false,
      noConfirm: true,
    },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 页签
     */
    TAB,

    /**
     * 类型
     */
    TYPE: [
      [1, '子设备'],
      [2, 'BA设备'],
      [3, '直连设备'],
      [4, '网关设备'],
    ],
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    tab: TAB[0][0],
    enable: 1, // 启用 1是 2否
    dataStatus: 1, // 数据状态 1正常 2删除
  }),
}
